package com.ltkj.baseplatform.mapper;

import java.util.List;
import com.ltkj.baseplatform.domain.SerTravelNotes;
import com.ltkj.baseplatform.domain.vo.SerTravelNotesVo;
import com.ltkj.system.api.domain.CommAttachment;
import org.apache.ibatis.annotations.Param;

/**
 * 游记管理Mapper接口
 * 
 * @author ruoyi
 * @date 2023-09-03
 */
public interface SerTravelNotesMapper 
{
    /**
     * 查询游记管理
     * 
     * @param id 游记管理主键
     * @return 游记管理
     */
    public SerTravelNotes selectSerTravelNotesById(Long id);

    /**
     * 查询游记管理Vo类
     *
     * @param id 游记管理主键
     * @return 游记管理Vo
     */
     SerTravelNotesVo selectSerTravelNotesVoById(Long id);

    /**
     * 查询游记管理列表
     * 
     * @param serTravelNotes 游记管理
     * @return 游记管理集合
     */
    public List<SerTravelNotes> selectSerTravelNotesList(SerTravelNotes serTravelNotes);

    /**
     * 根据id集合查询游记列表
     *
     * @param ids 业务id集合
     * @return 附件集合
     */
    List<SerTravelNotesVo> selectSerTravelNotesListByIds(List<Long> ids);

    /**
     * 查询游记管理Vo列表
     *
     * @param serTravelNotes 游记管理
     * @return 游记管理Vo集合
     */
     List<SerTravelNotesVo> selectSerTravelNotesVoList(SerTravelNotes serTravelNotes);

    /**
     * 新增游记管理
     * 
     * @param serTravelNotes 游记管理
     * @return 结果
     */
    public int insertSerTravelNotes(SerTravelNotes serTravelNotes);

    /**
     * 修改游记管理
     * 
     * @param serTravelNotes 游记管理
     * @return 结果
     */
    public int updateSerTravelNotes(SerTravelNotes serTravelNotes);

    /**
     * 删除游记管理
     * 
     * @param id 游记管理主键
     * @return 结果
     */
    public int deleteSerTravelNotesById(Long id);

    /**
     * 批量删除游记管理
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSerTravelNotesByIds(Long[] ids);

    /**
     * 批量删除游记管理(逻辑删除)
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int updateDelFlagByIds(Long[] ids);

    /**
     * 查询游记的附件列表
     *
     * @param ids 业务id集合
     * @return 附件集合
     */
    List<CommAttachment> selectCommAttachmentList(List<Long> ids);

    /**
     * 更新游记的查看量+1
     *
     * @param id 内容id
     * @return 结果
     */
    int updateViewNum(Long id);
    /**
     * 更新游记的评论量
     *
     * @param id 内容id
     * @return 结果
     */
    int updateCommentNum(@Param("num") Integer num, @Param("id")Long id);
    /**
     * 更新游记的点赞量
     *
     * @param id 内容id
     * @return 结果
     */
    int updateLikeNum(@Param("num") Integer num, @Param("id")Long id);
    /**
     * 更新游记的收藏量
     *
     * @param id 内容id
     * @return 结果
     */
    int updateCollectNum(@Param("num") Integer num, @Param("id")Long id);
}
